<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="root">
        <h2>今天天气很{{info}}</h2>
        <button @click="isHot = !isHot">切换天气</button>
    </div>
    <script>
        Vue.config.productionTip = false
        const vm = new Vue({
            el:"#root",
            data:{
                isHot:true
            },
            computed:{
                info(){
                    return this.isHot ? '炎热' : '凉爽'
                }
            },
            methods:{
                changeWeather(){
                    this.isHot = !this.isHot
                }
            },
            watch:{
                // 正常写法
                // isHot:{
                //     //immediate:true, //初始化时让handler调用一下
                //     //deep:true,  //深度监视
                //     // handler什么时候调用？当isHot发生改变时
                //     handler(newValue,oldValue){
                //         console.log('isHot被修改了',newValue,oldValue);
                //     }
                // }
                // 简写
                // isHot(newValue,oldValue){
                //     console.log('isHot被修改了',newValue,oldValue);
                // }
            }
        })

        // 正常写法
        // vm.$watch('isHot',{
        //     immediate:true, //初始化时让handler调用一下
        //     deep:true,  //深度监视
        //     handler(newValue,oldValue){
        //         console.log('isHot被修改了',newValue,oldValue);
        //     }
        // })

        vm.$watch('isHot',function(newValue,oldValue){
            console.log('isHot被修改了',newValue,oldValue);
        })
    </script>
</body>
</html>